home *** CD-ROM | disk | FTP | other *** search
- Path: ix.netcom.com!news
- From: Bradd W. Szonye <bradds@ix.netcom.com>
- Newsgroups: comp.lang.c,comp.lang.c++,rec.games.programmer
- Subject: RE: ! Read me and State your opinion.
- Date: 20 Apr 1996 18:43:26 GMT
- Organization: Netcom
- Message-ID: <01bb2ee9.57ded6a0$65c2b7c7@Zany.localhost>
- References: <4kegoq$f2d$1@mhadg.production.compuserve.com> <4kfle4$haf@newsbf02.news.aol.com> <4kmntl$jc0@texas.nwlink.com> <4kuv1k$ <19960419.132249.755914.NETNEWS@WVNVM.WVNET.EDU>
- NNTP-Posting-Host: det-mi3-05.ix.netcom.com
- X-NETCOM-Date: Sat Apr 20 1:43:26 PM CDT 1996
- X-Newsreader: Microsoft Internet News
-
-
- On Friday, April 19, 1996, Myron Brown wrote...
- > Vector (cowanb@limestone.kosone.com) wrote:
- > :
- > : >C is a *middle-level* language. C++, Pascal, and BASIC are
- high-level
- > : >languages. Assembly is a low-level language. Nobody uses machine
- > : >code anymore, except for chip designers.
- > : Hmm... okey, C IS middle level,
- > : But where the heck do you get off calling C++ HIGH level? Thats like
- calling
- > : Object oriented Assembler "Middle Level".
- >
- > Actually, C, C++, Pascal, and BASIC are all "high level languages" as
- > you put it. They're 3rd Generation languages, if you want technical
- > words. That's opposed to SAS, Matlab, INFORMIX, etc. which are 4th
- > Generation languages (that means that they shelter you more from the
- > hardware - for engineers as an example (just kidding)).
- >
- > : C++ is C, with a little extra added on. Dont call it High
- level, I
- > : consider it an insult.... :) At least call it "A tad above middle
- level, but
- > : way under high level."
- >
- > I agree. This kind of categorization of languages is based on levels
- > of abstraction from the hardware, and C and C++ are the same in that
- respect.
- >
- > Myron.
- >
-
- Specifically:
- 1st generation: machine language
- 2nd generation: assembly language
- 3rd generation: Ada, BASIC, C/C++, COBOL, FORTRAN, Pascal, etc.
- 4th generation: Forth, scripting languages, Smalltalk, SQL, etc.
-
- I'm not sure where the functional languages (LISP, ML, etc.) fit in here,
- but then we've always had "exceptions" in computer science. Also, there's
- some argument as to where to draw the line exactly between 3rd & 4th
- generation languages, such as which class Smalltalk fits into. A good
- guideline is that portability between machines tends to be a bigger
- concern for 3GLs; 4GLs depend more on your vendor's support for the
- runtime environment. Which brings up another distinction: traditionally,
- 4GLs are interpreted; the actual 4GL "operating system" is an interpretive
- layer (like the SQL database engine) that insulates the programmer from
- the "real" OS. All of this is of course is subjective.
-
- Traditionally, 1GLs and 2GLs are "low-level," 3GLs are "high-level," and
- 4GLs are "very high level." Colloquially, programmers refer to C as
- "mid-level" (or a 2.5GL) since most of its language constructions reflect
- the underlying architecture in a very obvious way. The explicit increment
- and decrement operators are a good example of this.
-
- Since the C++ OO mechanism hides a lot of system-level details (vtables,
- overload resolution, templates, type identification), you could call it
- "high-level" or maybe even "very-high-level." On the other hand, its
- expression syntax comes from C which is very assembly-like, so you could
- call C++ "mid-level." The problem is that C++ is a hybrid, with elements
- of 2.5GLs (BCPL, C), 3GLs (Ada, Simula), and 4GLs (ML, Smalltalk). All
- this makes C++ very hard to classify.
-
-
-